package com.ruoyi.combat.service.equiplocation.impl;

import java.text.DecimalFormat;
import java.util.List;

import com.ruoyi.combat.domain.equiplocation.CombatEquipInfo;
import com.ruoyi.combat.domain.equiplocation.CombatEquipTask;
import com.ruoyi.combat.mapper.equiplocation.CombatEquipInfoMapper;
import com.ruoyi.combat.mapper.equiplocation.CombatEquipTaskMapper;
import com.ruoyi.combat.service.equiplocation.ICombatEquipTaskService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 网路IP保护任务Service业务层处理
 *
 * @author ruoyi
 * @date 2025-01-06
 */
@Service
public class CombatEquipTaskServiceImpl implements ICombatEquipTaskService
{
    @Autowired
    private CombatEquipTaskMapper combatEquipTaskMapper;
    @Autowired
    private CombatEquipInfoMapper combatEquipInfoMapper;

    /**
     * 查询网路IP保护任务
     *
     * @param id 网路IP保护任务主键
     * @return 网路IP保护任务
     */
    @Override
    public CombatEquipTask selectCombatEquipTaskById(Long id) {
        CombatEquipTask combatEquipTask = combatEquipTaskMapper.selectCombatEquipTaskById(id);
        String protectedIp = combatEquipTask.getProtectedIp();
        // 通过IP查询设备信息
        CombatEquipInfo combatEquipInfo = combatEquipInfoMapper.selectCombatEquipInfoByIp(protectedIp);
        if (combatEquipInfo != null) {
            String afterRiskDistance = combatEquipInfo.getAfterRiskDistance();
            // 保留两位小数
            combatEquipTask.setAfterRiskDistance(new DecimalFormat("#.00").format(Double.parseDouble(afterRiskDistance)));
            combatEquipTask.setBeforeEquipRiskLat(combatEquipInfo.getBeforeEquipRiskLat());
            combatEquipTask.setBeforeEquipRiskLon(combatEquipInfo.getBeforeEquipRiskLon());
            combatEquipTask.setEquipLat(combatEquipInfo.getEquipLat());
            combatEquipTask.setEquipLon(combatEquipInfo.getEquipLon());
            combatEquipTask.setEquipIp(combatEquipInfo.getEquipIp());
            combatEquipTask.setEquipOrg(combatEquipInfo.getEquipOrg());
            combatEquipTask.setRiskLevel(combatEquipInfo.getRiskLevel());
            combatEquipTask.setAfterRiskLevel(combatEquipInfo.getAfterRiskLevel());
        }
        return combatEquipTask;
    }

    /**
     * 查询网路IP保护任务列表
     *
     * @param combatEquipTask 网路IP保护任务
     * @return 网路IP保护任务
     */
    @Override
    public List<CombatEquipTask> selectCombatEquipTaskList(CombatEquipTask combatEquipTask) {
        List<CombatEquipTask> combatEquipTasks = combatEquipTaskMapper.selectCombatEquipTaskList(combatEquipTask);
        return combatEquipTasks;
    }

    /**
     * 新增网路IP保护任务
     *
     * @param combatEquipTask 网路IP保护任务
     * @return 结果
     */
    @Override
    public int insertCombatEquipTask(CombatEquipTask combatEquipTask)
    {
        return combatEquipTaskMapper.insertCombatEquipTask(combatEquipTask);
    }

    /**
     * 修改网路IP保护任务
     *
     * @param combatEquipTask 网路IP保护任务
     * @return 结果
     */
    @Override
    public int updateCombatEquipTask(CombatEquipTask combatEquipTask)
    {
        return combatEquipTaskMapper.updateCombatEquipTask(combatEquipTask);
    }

    /**
     * 批量删除网路IP保护任务
     *
     * @param ids 需要删除的网路IP保护任务主键
     * @return 结果
     */
    @Override
    public int deleteCombatEquipTaskByIds(Long[] ids)
    {
        return combatEquipTaskMapper.deleteCombatEquipTaskByIds(ids);
    }

    /**
     * 删除网路IP保护任务信息
     *
     * @param id 网路IP保护任务主键
     * @return 结果
     */
    @Override
    public int deleteCombatEquipTaskById(Long id)
    {
        return combatEquipTaskMapper.deleteCombatEquipTaskById(id);
    }
}
